设为首页 加入收藏

TOP

Spring Cloud使用Consul作为注册中心示例(一)
2023-07-25 21:39:28 】 浏览:53
Tags:Spring Cloud 使用 Consul

最近在极客时间上面学习丁雪丰老师的《玩转 Spring 全家桶》,学到了服务注册中心这块,动手实践了一下,老师的视频录制是3年前,现在也有了些变化,自己也动手解决了一下,只有自己写一写才理解的更加细致一些,不然光看一遍视频,有点走马观花。 现将主要过程记录如下

准备工作

首先在本地docker上面安装Consul

docker pull consul
docker run --name my_consul -d -p 8500:8500 -p 8600:8600/udp consul

在8500端口上面启动了consul, 在浏览器上输入http://localhost:8500/ 就可以看到打开如下图的一个界面。
image

编写两个服务

我们这里简单的做两个服务,一个bookshop-service, 它提供读写表的服务;另外一个是book-customer-service, 它调用bookshop-service在控制台输出读取到的数据。

父POM文件定义

<properties>
		<java.version>19</java.version>
		<spring-cloud.version>2022.0.0</spring-cloud.version>
		<spring-boot.version>3.0.0</spring-boot.version>
	</properties>
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-dependencies</artifactId>
				<version>${spring-boot.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>${spring-cloud.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

在dependencyManagement中引入spring-boot-dependencies和spring-cloud-dependencies

编写bookshop-service服务

首先在POM中引入需要用到的包

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-consul-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>

    </dependencies>

spring-cloud-starter-consul-discovery就是用来和consul通信的包
spring-boot-starter-data-jpa 和 h2是我们访问数据库的包,我们使用内存数据库h2
定义一个model

@Entity
@Table(name = "T_BOOK")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Book implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;

    private String author;

    @Column(updatable = false)
    @CreationTimestamp
    private Date createTime;
    @UpdateTimestamp
    private Date updateTime;
}

在resouces下面放入schema.sql用来建表和插入数据

drop table t_book i
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇每日算法之数组中只出现一次的两.. 下一篇Java基础之常用类(String类)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目