引言
在这里你将学会微服务架构系统开发,我们把我们的一个完整的工程切分为多个子模块,每一个模块就是一个单独的微服务。
数据服务我们将用到mysql、mongdb、redis、elasticserch、rabbitmq
技术栈你将学会spring cloud全家桶、spring boot、springdata jpa、mysql读写分离、redis集群
Mongdb集群\mongdb集群。
系统采用前后端分离架构,并且技术用到了最新的SpringBoot+SpringCloud+SpringMVC+SpringData 我们把这种架构也称之为全家桶。
我们把我们的工程分为18个子模块
模块名称 |
模块中文名称 |
tensquare_common |
公共模块 |
tensquare_article |
文章微服务 |
tensquare_base |
基础微服务 |
tensquare_friend |
交友微服务 |
tensquare_gathering |
活动微服务 |
tensquare_qa |
问答微服务 |
tensquare_recruit |
招聘微服务 |
tensquare_user |
用户微服务 |
tensquare_spit |
吐槽微服务 |
tensquare_search |
搜索微服务 |
tensquare_web |
前台微服务网关 |
tensquare_manager |
后台微服务网关 |
tensquare_eureka |
注册中心 |
tensquare_config |
配置中心 |
tensquare_sms |
短信微服务 |
tensquare_article_crawler |
文章爬虫微服务 |
tensquare_user_crawler |
用户爬虫微服务 |
tensquare_ai |
人工智能微服务 |
RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易 于理解、扩展方便,所以正得到越来越多网站的采用。
REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的 .
REST 是Representational State Transfer的缩写,翻译是”表现层状态转化”。
可以 总结为一句话:REST是所有Web应用都应该遵守的架构设计指导原则。
面向资源是REST最明显的特征,对于同一个资源的一组不同的操作。资源是服务器 上一个可命名的抽象概念,资源是以名词为核心来组织的,
首先关注的是名词。REST要 求,必须通过统一的接口来对资源执行各种操作。对于每个资源只能执行一组有限的操 作。
7个HTTP方法:GET/POST/PUT/DELETE/PATCH/HEAD/OPTIONS
需要jdk1.8环境
需要meaven3.3.9
需要idea开发工具
Postman中文版是postman这款强大网页调试工具的windows客户端,提供功能强大的 Web API & HTTP 请求调试。
软件功能非常强大,界面简洁明晰、操作方便快捷,设计得 很人性化。
Postman中文版能够发送任何类型的HTTP 请求 (GET, HEAD, POST, PUT..), 附带任何数量的参数+
打开菜单选择file-newproject选择meaven,点击next
输入groupid和artifactId点击next
修改pom文件
4.0.0
com.tensquare
tensquare_parent
1.0-SNAPSHOT
pom
tensquare_parent
org.springframework.boot
spring‐boot‐starter‐parent
2.0.1.RELEASE
UTF‐ 8
UTF‐ 8
1.8
org.springframework.boot
spring‐boot‐starter‐web
org.springframework.boot
spring‐boot‐starter‐test
test
spring‐snapshots
Spring Snapshots
https://repo.spring.io/snapshot
true
spring‐milestones
Spring Milestones
https://repo.spring.io/milestone
false
spring‐snapshots
Spring Snapshots
https://repo.spring.io/snapshot
true
spring‐milestones
Spring Milestones
https://repo.spring.io/milestone
false
搭建公共子模块 tensquare_common,选择工程newmodule
)创建启动类
在resources下创建application.yml
#配置server端口
server:
port: 9001
spring:
application:
name: tensquare-base #服务名
datasource:
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/tensquare_base?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: root
password: root
jpa:
database: MySQL
show-sql: true
generate-ddl: true
启动类
@SpringBootApplication
public class BaseApplication {
public static void main(String[] args) {
SpringApplication.run(BaseApplication.class);
}
@Bean public IdWorker idWorker(){
return new IdWorker(1,1);
}
}
pom.xml
tensquare_parent
com
1.0-SNAPSHOT
4.0.0
com.tensquare.base
tensquare_base
org.springframework.boot
spring-boot-starter-data-jpa
mysql
mysql-connector-java
com.tensquare
tensquare_common
1.0-SNAPSHOT
见本人博客:博客
@ControllerAdvice
public class BaseExceptionHandler {
@ExceptionHandler(value = Exception.class)
@ResponseBody
public Result error(Exception e) {
e.printStackTrace();
return new Result(false, StatusCode.ERROR, e.getMessage());
}
}
http://www.liph.fun
http://www.liph.fun/resource