SpringCloud使用Consul作为服务治理中心
Consul
Consul是一个Spring Cloud 中集成好的开源的分布式的服务注册发现中心。
由Go语言编写。支持健康检查,多数据中心还支持k-v存储,采用Raft一致性算法,保证强一致性,可用性。并且和docker完美兼容。
Consul本身也是一种服务治理中心,相对于Eureka而言:Consul牺牲了部分的性能,保证了服务的强一致性。Eureka只要服务注册到主节点,就认为服务注册成功,不关其他节点是否可以正常调用。
Consul vs Eureka vs Zookeeper
CAP原理分别指的是,数据一致性、数据可用性、分区耐受性 ,这里AP和CP分别指的是:AP模式: 牺牲强一致性,部分节点宕机,不会影响正常工作的节点。CP模式: 牺牲数据可用性,为了保证数据的一致性,当一台机器出现故障时,所有节点的数据都不能使用。
一致性算法,使一组服务器在一个值上达成一致,所以活跃的特征在于最终每个服务器都可以决定一个值。通过值的一致能够实现对同一个数据的请求会让同一个服务器来处理。Paxos和Raft都是通过选取master来实现多节点下值的一致性。Consul的安装及启动
第一步:下载consul
根据自身的系统从官网选择合适的版本。我这里使用的是Mac,可以直接使用brew下载
同样使用Mac的小伙伴可以参考我的博客:使用Mac系统来进行Java编程brew install consul
第二步:启动consul./consul agent -dev -ui -client 0.0.0.0
启动命令各参数说明:agent:Consul的核心命令,主要作用有维护成员信息、运行状态检测、声明服务以及处理请求等-server:就是代表server模式-ui:代表开启web 控制台-bootstrap-expect:代表想要创建的集群数目,官方建议3或者5-data-dir:数据存储目录-node:代表当前node的名称-client:应该是一个客户端服务注册的地址,可以和当前server的一致也可以是其他主机地址,系统默认是127.0.0.1-bind:集群通讯地址-join:加入的集群地址
第三步:进入http://localhost:8500/ui/dc1/services进入Consul UI界面
SpringCloud使用Consul作为服务治理中心
Maven依赖Consul对于SpringBoot和SpringCloud的版本有着一定的要求,所以这里展示实例demo相对完整的依赖。 org.springframework.boot spring-boot-starter-parent 2.1.2.RELEASE UTF-8 1.8 1.8 1.18.2 org.springframework.boot spring-boot-starter-actuator org.springframework.cloud spring-cloud-starter-consul-discovery org.springframework.boot spring-boot-starter-web org.projectlombok lombok ${lombok-version} true org.springframework.cloud spring-cloud-dependencies Greenwich.SR4 pom import
application.properties:配置类server.port=8080 spring.application.name=springcloud-demo-producer #consul spring.cloud.consul.host=127.0.0.1 spring.cloud.consul.port=8500 #健康检查路径 spring.cloud.consul.discovery.health-check-path=/actuator/health spring.cloud.consul.discovery.health-check-interval=15s spring.cloud.consul.discovery.hostname=127.0.0.1 spring.cloud.consul.discovery.register=true spring.cloud.consul.discovery.port=${server.port} #consul service name spring.cloud.consul.discovery.serviceName=springcloud-demo-producer spring.cloud.consul.discovery.heartbeat.enabled=true
SpringCloudProducerApp:启动类@EnableDiscoveryClient:用于向consul或者zookeeper作为注册中心的时候提供注册服务@Slf4j @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) @EnableDiscoveryClient public class SpringCloudProducerApp extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(SpringCloudProducerApp.class); } /** * 项目的启动方法 * * @param args */ public static void main(String[] args) { SpringApplication.run(SpringCloudProducerApp.class, args); log.info("======服务已经启动========"); } }验证
启动项目,进入http://localhost:8500/ui/dc1/servicesConsul UI界面看到新注册的服务
用龙芯去取代组装品牌我们听到最多的是在一些重点单位,大部分潜在的台词是只让用国内组装品牌电脑,理由是最少他们了解这个电脑的各种硬件,不存在泄密的问题,问题是包括国内一些著名品牌在内电脑还没有达到主要配
线上外卖这个无底洞,到底还要坑害多少商家?楼主也算是个正经科班出身的餐饮人,2004年读大三的时候就兼职世界五百强做服务员,后来顺理成章就做了管理人员一直晋升到高层,一直到2010年元旦正式离职,后来从事社会餐饮,做的都还
骁龙888旗舰凉了?8256G突然降2060元,幸福来得很快今年的三星在中国市场上一如既往地差!很多人都知道的,现在国内手机市场份额基本上被小米OV荣耀和iPhone独揽,三星一直挤不进来,就连华为在失去5G竞争力之后,份额也被小米OV荣耀
前十名扫地机器人排名有哪些冰尊扫地机器人是世界扫地机器人十大排名领导品牌。随着人工智能的不断普及,扫地机器人让清理地面这件事变得极为容易和便利。扫地机器人随着发展品牌越来越多,下面就为大家分析,前十名扫地机
高通骁龙8Gen1变炎龙,害了国产旗舰?编者按摩托罗拉终于如愿以偿地抢到了高通骁龙8进1处理器的首发,而高通打翻身仗的处理器也就这样突然地出现在我们面前,但现在来看,高通这款处理器的提升显然受到了很多因素的影响,并不能够
人民财评摇一摇就跳转,APP开屏广告闹啥幺蛾子?来源人民网观点频道原创稿打开手机APP,弹出开屏广告,明明没有点击屏幕,却跳转到广告详情或相关应用软件如此诡异的事,近期被越来越多用户遇到。原来,这不是手机抽风,而是一些APP悄然
5000mAh骁龙8Gen1,首发价仅2999元!小米12难办了雷军在高通技术峰会正式表示,小米12将全球首发骁龙8移动平台,并且会很快和大家见面。小米和高通一直保持紧密的合作,小米以往多款产品都首发高通最新旗舰芯片。不过小米首发被moto新机
知网是否涉嫌垄断?专家这么说本文转自长江日报大武汉客户端作者李玉莹赵德馨教授状告中国知网维权事件仍在持续热议。连日来,不少网友发出疑问中国知网是否涉嫌垄断?对此,长江日报记者专访了武汉大学竞争法与竞争政策研究
电商早报宸帆电商回应雪梨店铺被封阿里巴巴领投T11我是邦小白,这里是CEO自习室,我整理了一份学习资料,助你回顾最受关注的电商大事。宸帆电商回应雪梨林珊珊网店被封日前,有网友发现,继雪梨微博账号被封后,雪梨在抖音小红书的账号也被封
李书福卸任12月13日消息,企查查显示,浙江吉利新能源商用车集团有限公司发生工商变更,李书福退出董事长职位,总经理周建群兼任董事长。此外,我们注意到安聪慧也同时退出了浙江吉利新能源商用车集团
全球首款5K双MicroOLEDVR一体机arparaAIO亮相Kickstarter,多重亮点抢先看国内新一代VR品牌arpara将于12月14日23点正式启动Kickstarter关于品牌旗下的国际版本5KVR头显和VR一体机的众筹项目,同时还将上线arparaTracker为