println 发表于 2019-11-13 16:54

【笔记】傻瓜式Java分布式的创建

注册中心的创建

1、建立注册中心(EurekaServer),需要引入依赖。
Spring Cloud Discovery --> Eureka Server
2、在项目src-->main-->java-->com.XXX.XXXXX-->找到EurekaServerApplication(项目名字+Application)
中的类方法上加@EnableEurekaServer注解。
3、找到项目中的application.properties,在其中加入以下语句:
#端口号设置
server.port=8080
#注册中心服务记录地址
eureka.client.service-url.defaultZone=http://localhost:8080/eureka
#记录注册信息(记名字)
eureka.client.fetch-registry=false
#服务注册到注册中心
eureka.client.register-with-eureka=false#端口号设置
server.port=8080
#注册中心服务记录地址
eureka.client.service-url.defaultZone=http://localhost:8080/eureka
#记录注册信息(记名字)
eureka.client.fetch-registry=false
#服务注册到注册中心
eureka.client.register-with-eureka=false
注册中心创建完毕

生产者的建立
1、建立生产者(producer),需要引入依赖。
Web--> Spring Web
SQL--> JDBC API , MyBatis Framework , MySQL Driver
Spring Cloud Discovery--> Eureka Discovery Client
2、在项目src-->main-->java-->com.XXX.XXXXX-->找到MyproviderApplication(项目名字+Application)
在类方法上加@EnableEurekaClient注解
3、找到项目中的application.properties,在其中加入以下语句:
#设置端口号
server.port=8081
# 数据库连接属性
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url=jdbc:mysql://localhost:3306/test(数据库名字)?serverTimezone=UTC(时区)
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# 给实体类起别名
mybatis.type-aliases-package=com.example.demo.bean
# 扫描mapper文件
mybatis.mapper-locations=classpath:mapper/*.xml
#给项目起名字
spring.application.name=myprovider
#注册项目
eureka.client.service-url.defaultZone=http://localhost:8080/eureka
PS:如需一个对象为参数则需要@RequestBody注解,如果是其他数据类型则需要添加@RequestParam("XXX")注解,
PS:XXX就是参数的名字

消费者的建立
1、建立消费者(consumer),需要引入依赖。
Web--> Spring Web
Template Engines--> Thymeleaf
Spring Cloud Discovery--> Eureka Discovery Client
Spring Cloud Routing-->OpenFeign
2、在项目src-->main-->java-->com.XXX.XXXXX-->找到MyconsumerApplication(项目名字+Application)
在类方法上加@EnableEurekaClient,@EnableFeignClients这两个注解
3、找到项目中的application.properties,在其中加入以下语句:
#设置端口号
server.port=8082
#给项目起名字
spring.application.name=myconsumer
#注册项目
eureka.client.service-url.defaultZone=http://localhost:8080/eureka
4、在消费者中建立一个文件夹(名字是Feign)在文件夹中建立类(名字为XXXFeign),
在其中编写远程调用相关配置
@FeignClient("myprovider")
public interface TestFeign {
    @RequestMapping("index")
    public String a(@RequestParam("uname") String uname);
}
5、在Controllet中调用Feign
@Controller
public class UserController {
    @Autowired
    Ufeign ufeign;
    @RequestMapping("ajaxsel")
    @ResponseBody
    public List<User> l(){
      List<User> list=ufeign.a();
      return list;
    }

最后注意:
其中因为会遇到实体类的问题,所以需要创建公共实体类。
步骤为:
1、创建一个Maven项目,在Create from archetpe复选框前勾选上。
2、在下面的列表中找到org.apache.maven.archetypes:maven-archetype-quickstart,选中。然后点击next
3、接下来分别输入类型(groupId),名字(artifactId),版本号根据自己的需求决定是否改变。点击下一步即可创建公共实体类
4、之后会让你确认信息,点击下一步即可创建公共实体类。
5、在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>bean</groupId>
<artifactId>module</artifactId>
<version>1.0-SNAPSHOT</version>

</project>
6、在src-->main-->java-->bean创建公用的实体类。
7、删除其中的test文件夹
8、在右边找到Maven,点击展开后,找到项目名下面的Lifecycle展开后,
找到下面的install,双击。当出现以下内容时即创建成功。
BUILD SUCCESS
------------------------------------------------------------------------
Total time:1.369 s
Finished at: 2019-10-26T16:57:15+08:00
------------------------------------------------------------------------

Process finished with exit code 0

资料终结者 发表于 2019-11-13 18:15

向大佬学习

DRAWFIRE 发表于 2019-11-13 18:20

如果开头有个大纲这样理解起来就简单多了呢

println 发表于 2019-11-13 20:23

可以的话,希望大家多提提意见。第一次发帖比不上论坛的大佬们,希望在学习技术的同时也分享一些自己的东西。

追逐太阳 发表于 2019-11-13 21:53

println 发表于 2019-11-13 20:23
可以的话,希望大家多提提意见。第一次发帖比不上论坛的大佬们,希望在学习技术的同时也分享一些自己的东西 ...

这是通过视频做的学习笔记??还是通过书籍做的demo??

println 发表于 2019-11-13 22:23

追逐太阳 发表于 2019-11-13 21:53
这是通过视频做的学习笔记??还是通过书籍做的demo??

也是学习笔记,现在也在用这个做项目。

JacobsHash 发表于 2019-11-13 22:38

感谢楼主,最近刚好学到分布式,再次感谢!

墨白 发表于 2019-11-25 15:50

引入maven依赖的部分,可以直接丢<dependency>标签出来。

println 发表于 2019-11-25 20:11

墨白 发表于 2019-11-25 15:50
引入maven依赖的部分,可以直接丢标签出来。

我觉得没有必要把这个丢出来,因为我说的很明确了。只要不傻我觉得应该是能找到吧?

露露的大雕 发表于 2019-12-2 17:41

字看着有点困难 不过不妨碍理解
页: [1] 2
查看完整版本: 【笔记】傻瓜式Java分布式的创建