Talk is Cheap, Show me the Code! <<网站首页文章列表

  • SpringBoot2(四)Docker+Consul+Cloud+Feign

    前言距离上一篇SpringBoot2的文章,已经过去很久了,今天终于有时间继续写一篇基于SpringBoot2+SpringCloud+consul+feign的入门文章。 Spring Cloud Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。[SpringCloud](https://springcloud.cc/) Spring Cloud Feign Feign是Netflix开发的声明式、模板化的HTTP客户端, Feign可以帮助我们更快捷、优雅地调用HTTP API。Spring Cloud对Feign进行了增强,使Feign支持了Spring MVC注解,并整合了Ribbon和Eureka,从而让Feign的使用更加方便。通过Feign,Java项目可以轻松实现跨语言的基于Http的服务接口。[Fegin](https://github.com/OpenFeign/feign) Consul Consul是一个服务发现与配置工具,与Docker容器可以无缝集成,同时它自身也是分布式的、高可用的、可扩展的。+ 服务发现:通过Consul,服务提供方可以轻而易举的将自己的服务进行注册,同时可以通过DNS或者HTTP接口来发现其他服务。SaaS等其他服务同样可以注册上来。+ 健康检查:当Consul集群发生任何异常时,健康检查功能可以迅速将异常信息通知给其它节点。它可以防止请求被路由到非健康节点,同时可以提供服务级别的熔断。+ 基于键值的存储:类似Zookeeper,Consul也可

    SpringCloud   Consul   Feign   Docker   SpringBoot   2019-09-22 浏览(1069) 阅读原文>>
  • SpringBoot2从零开始(三)—— rabbit MQ

    RabbitMQ是流行的开源消息队列系统,用erlang语言开发。RabbitMQ是AMQP(高级消息队列协议)的标准实现。如果不熟悉AMQP,直接看RabbitMQ的文档会比较困难。不过它也只有几个关键概念,这里简单介绍。几个概念说明: + Broker:简单来说就是消息队列服务器实体。 + Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。 + Queue:消息队列载体,每个消息都会被投入到一个或多个队列。 + Binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来。 + Routing Key:路由关键字,exchange根据这个关键字进行消息投递。 + vhost:虚拟主机,一个broker里可以开设多个vhost,用作不同用户的权限分离。 + producer:消息生产者,就是投递消息的程序。 + consumer:消息消费者,就是接受消息的程序。 + channel:消息通道,在客户端的每个连接里,可建立多个channel,每个channel代表一个会话任务。消息队列的使用过程大概如下: 1. 客户端连接到消息队列服务器,打开一个channel。 2. 客户端声明一个exchange,并设置相关属性。 3. 客户端声明一个queue,并设置相关属性。 4. 客户端使用routing key,在exchange和queue之间建立好绑定关系。 5. 客户端投递消息到exchange。 exchange接收到消息后,就根据消息的key和已经设置的binding,进行消息路由,将消息投递到一个或多个队列里。 exchange也有几个类型,完全根据key进行投递的叫做Direct交换机,例如,绑定时设置了routing key为abc,那么客户端提交的消息,只有设置了key为abc的才会投递到队列。对key进行模式匹配后进行投递的叫做Topic交换机,符号匹配一个或多个词,符号匹配正好一个词。例如abc.匹配abc.def.ghi,abc.只匹配abc.d

    rabbitmq   SpringBoot   2019-04-26 浏览(1411) 阅读原文>>
  • SpringBoot2从零开始(二)——多数据源配置

    零、前言多数据源配置,一直是大部分企业级开发所要面对的,即使微服务化概念提出来已经有一点时间了。微服务边界定义的好坏,直接影响系统的真实复杂度。所以即使用了提倡微服务的SpringBoot,即使SpringBoot默认约定配置是单数据源的,多数据源整合还是有其存在的必要的。当然,直接将非SpringBoot项目中多数据源配置的配置文件挪过来,稍作修改亦可实现。但是,既然使用了SpringBoot,如果依旧用那种方式,如何体现使用SpringBoot的“优越感”?至少要通过使用SpringBoot提供的诸多便利方式来实现多数据源,方可自称是SpringBoot的脑残粉,啊不,是倡导者,你说是不?---在本章开始之前,有必要了解下MyBatis在SpringBoot下大致的工作过程是怎样的。 一、MyBatis相关类解释 \\\\Mapper或者\\\\Dao+ 这是一个接口类,描述了某个数据访问的相关接口,例如:userMapper是一个tbuser表的数据访问接口。+ com.wj.domain.mapper.UserMapper是这个接口的完整类路径,这里叫做mapperInterface。+ 接口中定义了一些方法接口:int countByExample(UserExpample example)、int deleteByExample(UserExpample example)等等,其中countByExample叫做方法名,它与mapperInterface一同组成了这个方法在某个连接配置中的唯一标示。 org.apache.ibatis.mapping.MappedStatement+ 它表示了Mybatis框架中,XML文件对于sql语句节点的描述信息,包括<select /、<update /、<insert /。+ 在初始化阶段,框架会将XML配置内容转为一个个MappedStatement对象实例。+ 在XML中,mapper.namespace.id可以定位到唯一的一条SQL内容,这就是MappedStatement。所以,mapper.namespace就是前面提到的mapperInterface。同样,在

    SpringBoot   多数据源   MyBatis   2019-07-26 浏览(3925) 阅读原文>>
  • SpringBoot2从零开始(一)——项目启动

    Maven中groupId、artifactId、version+ groupId - the id of the project's group.+ artifactId - the id of the artifact (project)+ version - the version of the artifact under the specified groupA POM requires that its groupId, artifactId, and version be configured. These three values form the project's fully qualified artifact name. This is in the form of ::. As for the example above, its fully qualified artifact name is "com.mycompany.app:my-app:1".--- 开始SpringBoot 2 一、初始化一个web项目访问 [start.spring][startSpring] ,创建快速创建一个SpringBoot2的web项目。Dependencies选择一个Web模块即可,然后点击下方Generate Project alt+回撤按钮。解压下载的zip包,导入的IDE中,我使用是eclipse。在你 的groupId.artifactId目录下找到Application文件,以main方法运行即可快速即启动一个web项目。springboot官方建议的根目录(groupId.artifactId)下,主要有三个package:+ domain:主要存放数据库访问相关对象以及映射类。+ service:业务层代码。+ controller:控制层代码,负责页面访问。当然,如果是多Module项目,另当别论。在controller目录下创建一个FirstController.java文件,增加一个示例接口:javapackage com.wj.springboot2demo.controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class FirstController { / @RequestParam 注解有四个参数,均为非必填: defaultValue 指定了参数的默认值 required

    SpringBoot   Web   MyBatis   2019-04-30 浏览(1807) 阅读原文>>
  • 1 
    blogTest
    分享文章
     
    使用APP的"扫一扫"功能,扫描左边的二维码,即可将网页分享给别人。
    你也可以扫描右边本博客的小程序二维码,实时关注最新文章。