【从0开始】Spring Cloud + Ignite教程

Ignite

就是一个K-V的分布式缓存框架


官方文档

官方文档:https://www.ignite-service.cn/doc/java/,本文主要手把手对Spring Cloud+Apache Ignite实现一个简单实例便于理解,具体Ignite的细节学习请参考文档。


新电脑,因此我一切也是从0开始。


零、JDK

0.1 下载

网址: https://www.oracle.com/java/technologies/downloads/#java8
在这里插入图片描述
注册登录Oracle账户后,开始下载
在这里插入图片描述
由于网速太慢,改为在此下载:http://www.winwin7.com/soft/50828.html


0.2 安装

下载后一直点下一步安装就行

在这里插入图片描述


0.3 配置

打开【系统属性】界面,点击【高级】--》【环境变量】,在【系统变量】下点击【新建】

变量名输入:JAVA_HOME,变量值输入:C:\Program Files\Java\jdk1.8.0_131
在这里插入图片描述

继续新建系统变量
变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib;
在这里插入图片描述
点击系统变量中的Path,点击编辑,输入:%JAVA_HOME%\bin并保存
在这里插入图片描述
打开cmd窗口输入java -version进行测试
在这里插入图片描述


一、IDEA

1.1 下载

网址: https://www.jetbrains.com/idea/download/#section=windows,记得要下载专业版
在这里插入图片描述


1.2 安装

在这里插入图片描述
打开后选择Start trial,注册账号并登录
在这里插入图片描述


二、MySQL

2.1 下载

网址:https://www.mysql.com/
在这里插入图片描述
输入之前注册的Oracle账户进行下载,这次网速很快
在这里插入图片描述

2.2 安装

下载后,解压到了C盘
在这里插入图片描述

2.3 配置

在这里插入图片描述
在这里插入图片描述
创建一个txt文件,输入以下内容,然后命名为my.ini

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir = C:\mysql-8.0.30-winx64
# 设置mysql数据库的数据的存放目录
datadir = C:\mysql-8.0.30-winx64\data
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 创建模式
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

在这里插入图片描述
进入该目录进行初始化
在这里插入图片描述
.err文件里有初始账号密码
在这里插入图片描述
以管理员身份进行服务安装
在这里插入图片描述
启动
在这里插入图片描述


2.4 MySQL可视化客户端

下载链接:http://www.navicat.com.cn/download/navicat-premium
在这里插入图片描述
一路下一步安装即可,输入root和密码
在这里插入图片描述
创建了一个数据库叫ignite
在这里插入图片描述


三、EurekaServer

3.1 创建一个空的maven工程

在这里插入图片描述
将其pom.xml修改如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.example</groupId>
    <artifactId>demo</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>eureka-server</module>
    </modules>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.7.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.SR2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

</project>

3.2 创建eureka-server

在当前模块下创建一个子module
在这里插入图片描述
引入eureka-server的依赖

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
            <version>2.0.2.RELEASE</version>
        </dependency>
    </dependencies>

在 eurekaserver 子工程的 resources 目录下创建 application.yml 配置如下:

server:
  port: 8761 #当前eureka server 服务端口

eureka:
  client:
    register-with-eureka: false #是否将当前的 eureka server 服务作为客户端进行注册
    fetch-registry: false #是否获取其他 eureka server 服务的数据
    service-url: 
      defaultZone: http://localhost:8761/eureka/ #注册中心的访问地址

在这里插入图片描述
创建启动类:

@SpringBootApplication //SpringBoot 服务的入口
@EnableEurekaServer
public class EurekaServer {

    public static void main(String[] args) {
        SpringApplication.run(EurekaServer.class,args);
    }
}

四、部署Ignite

4.1 创建一个module

在这里插入图片描述


4.2 引入依赖

在父工程的pom.xml引入ignite的依赖,此时刚才的子项目ignite-server由于继承了父工程的pom,已经可以开发ignite
在这里插入图片描述
除此之外,还需要引入mysql所需的依赖
在这里插入图片描述


4.3 创建数据库表

本例使用JDBC作为ignite集群间通信的实现方式,根据Ignite的JDBC探测器相关源码发现,存储ip地址的数据库表名为tbl_addrs,因此我们需要创建一个这样的数据库表。以及两个字段:hostname、port。
在这里插入图片描述

在这里插入图片描述
使用navicat创建这样的数据库表:
在这里插入图片描述


4.4 编写服务器程序

服务器程序如下,直接使用main方法即可:

    public static void main(String[] args) {
        MysqlDataSource dataSource = new MysqlDataSource();
        dataSource.setURL("jdbc:mysql://localhost:3306/ignite");
        dataSource.setUser("root");
        dataSource.setPassword("/QMdpls8Zseg");

        // 创建一个Ignite配置
        IgniteConfiguration cfg = new IgniteConfiguration();
        // 创建一个基于TCP的发现其他Ignite实例的Spi对象
        TcpDiscoverySpi discoverySpi = new TcpDiscoverySpi();
        // 创建一个基于JDBC的IP探测器
        TcpDiscoveryJdbcIpFinder ipFinder = new TcpDiscoveryJdbcIpFinder();
        ipFinder.setDataSource(dataSource);//设置数据源
        discoverySpi.setIpFinder(ipFinder);//设置IP探测器
        cfg.setDiscoverySpi(discoverySpi);//设置Spi
        //启动Ignite服务器
        Ignition.start(cfg);
    }

在这里插入图片描述


五、EurekaConsumer

5.1 创建eureka-consumer

接下来,我们需要编写eureka客户端程序,调用ignite的客户端程序来进行操作。
在这里插入图片描述
在其pom文件中添加:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    <version>2.0.2.RELEASE</version>
</dependency>

创建启动类:
在这里插入图片描述

在 eureka-consumer子工程的 resources 目录下创建 application.yml 配置如下:
在这里插入图片描述


5.2 配置数据源

创建一个数据源配置类,代码和ignite-server里一样
在这里插入图片描述


5.3 编写客户端程序

代码和服务器端一样,只是多了一行设置客户端模式
在这里插入图片描述


六、测试

6.1 启动eureka-server

在这里插入图片描述


6.2 启动eureka-consumer

在这里插入图片描述


6.3 启动Ignite服务器程序

启动后观察控制台,目前已连接一台服务器,0台客户端(Ignite节点默认是服务器模式)。
在这里插入图片描述
可以观察到tbl_addrs中增加了当前服务器的IP地址:
在这里插入图片描述


6.4 测试

在浏览器输入:localhost:8080/ignite/test
在这里插入图片描述

观察服务器程序,客户端已经成功链接
在这里插入图片描述
接下来就可以参考官方文档调用Ignite实例进行其他操作了。

#JAVA##秋招#
全部评论
点赞 回复 分享
发布于 2022-09-14 16:58 北京

相关推荐

12-25 16:42
已编辑
上海理工大学 产品经理
产品小白成长中:怎么回事吞我评论啊啊啊啊查看图片
点赞 评论 收藏
分享
11-15 17:19
湖南大学 Java
成果成果成果果:这是哪个公司的hr,这么离谱吗,我没见过用性别卡技术岗的,身边女性同学拿大厂offer的比比皆是
点赞 评论 收藏
分享
评论
6
7
分享
牛客网
牛客企业服务