javaweb项目,java consul服务发现_分布式项目(七)consul 服务注册与发现

 2023-09-23 阅读 27 评论 0

摘要:说到分布式自然就离不开分布式和微服务的话题,简单聊一下。微服务是一种软件架构方式,或者说一个一种结构设计风格,它并不是标准,它的逻辑是把一个整体服务按业务拆分成不同独立的服务,降低服务强依赖,消服务器消息驱动,惯用

说到分布式自然就离不开分布式和微服务的话题,简单聊一下。

微服务是一种软件架构方式,或者说一个一种结构设计风格,它并不是标准,它的逻辑是把一个整体服务按业务拆分成不同独立的服务,降低服务强依赖,消服务器消息驱动,惯用的例子:买东西涉及到订单,仓库,扣钱,以前都是把这些功能作在一个项目中,在一个jvm进程中运行,微服务怎么搞,把订单,仓库,扣钱,搞成三个独立的项目,运行在三个不同的jvm进程中,服务之间使用http调用或者mq驱动。

分布式是什么东西呢?分布式更多的强调的是一种部署方式,上面微服务已经把一个项目拆分成了几个不同的项目,那现在项目需要运行起来提供对应的服务,所以这就是分布式的概念,在不同的服务器上分散部署不同的服务,这里需要区分分布式与集群的区别。集群我们一般讲都是把redis,MySQL集群,这里主要讲是把同一种服务分散部署,横向扩展,达到容灾和提升性能,而分布式讲究的不同服务,分散部署。

书接上回,在前面的开发中,我们已经完成了一整套的流程了,已经具备初步部署的条件了,现在我们就开准备spring cloud环境。 应广大不怕事儿大的吃瓜群众的要求,这里不使用eruka(因为eruka2.0的一系列问题),而改用consul。

javaweb项目,consul

分布式绕不开的一个话题,服务注册、服务发现、服务治理,换句话说,你得让别人知道你在哪儿,死没死,怎么联系你。 而consul就是这样一套开源的分布式服务器发现、配置管理的系统,内置了服务注册和发现,分布式一致性协议,健康检查, key/value存储(redis?有点吊),多数据中心((⊙o⊙)… 不明所以),可视化ui,同时它有种运行模式server/client (哦,是不是客户端像服务端发送某些数据呢)。

服务注册

consul两种注册实现的方式,一种是服务自己调用consul提供的http api调用实现注册,spring cloud就是用的这种,另一种是通过json配置文件来实现注册,比如你要把mysql注册上去,就可以使用这种方式。

服务发现

Java分布式技术、服务发现也有两种方式,一种也是通过http api调用,另一种就是使用consul agent DNS。

consul安装

启动

./consul agent -server -bootstrap --bind=127.0.0.1 -client 0.0.0.0 -data-dir consul_data -ui

9c151a507660065666db533ba60ff000.png

spring consul

java分布式教程,现在开始spring cloud了,所以创建新工程cloud-work

org.springframework.boot

spring-boot-starter-parent

2.1.4.RELEASE

1.8

大型java项目、Greenwich.SR1

org.springframework.cloud

spring-cloud-dependencies

${spring-cloud.version}

pom

docker发布项目。import

consul-discovery-client

创建consul-discovery-client模块,用户集成consul客户端。

org.springframework.cloud

spring-cloud-starter-consul-discovery

java 项目。2.1.1.RELEASE

org.springframework.boot

spring-boot-starter-actuator

org.springframework.boot

spring-boot-starter-web

java实战项目大全?@EnableDiscoveryClient

@SpringBootApplication

public class DiscoveryApplication {

public static void main(String[] args) {

SpringApplication.run(DiscoveryApplication.class,args);

java分布式开发是什么、}

}

@EnableDiscoveryClient

@SpringBootApplication

public class DiscoveryApplication {

java分布式架构?public static void main(String[] args) {

SpringApplication.run(DiscoveryApplication.class,args);

}

}

iot-pt改造

java小项目。把consul-discovery-client打maven包,在iot-pt项目中引用,并加入spring cloud依赖。

cn.le

consul-discovery-client

0.0.1-SNAPSHOT

org.springframework.cloud

java项目开发实例、spring-cloud-dependencies

${spring-cloud.version}

pom

import

1.8

Greenwich.SR1

修改 coap-server

我们先拿coap-server实现,修改配置文件

coap.port=5683

coap.iot.byte=iot-byte

coap.iot.json=iot-json

spring.cloud.consul.host=127.0.0.1

spring.cloud.consul.port=8500

server.port=8090

server.servlet.context-path=/coap-server

spring.application.name=coap-server

#健康检查路径

spring.cloud.consul.discovery.health-check-path=

${server.servlet.context-path}/actuator/health

启动项目,打开consul管理页面

d6876f36785eb7f6f5fe4b4c3b40528b.png

结束语

其它的iot-pt模块这是按照这种方式来搞,这里就不一一说明了。想了解更多关于consul的,点击https://www.cnblogs.com/duanxz/p/7053301.html ,笔者这里也借鉴了一丢丢(捂脸)。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/88962.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息