环境搭建、SpringCloud微服务(注册发现、服务调用、网关)

环境搭建、SpringCloud微服务(注册发现、服务调用、网关)

1)课程对比

2)项目概述

外卖:单体架构(单体,用户服务商品服务打jar包、ssm Spring、springmvc、mybatis)无法高可用(挂nginx-war集群)

SOA:服务之间拆分模块,项目太大便于开发、解耦,互相之间不影响 服务治理;项目之间互相访问。dubbo比较早的分布式框架,简单的服务治理,调用互相称为生产者消费者。

2.1)能让你收获什么

2.2)项目课程大纲

2.3)项目概述

随着智能手机的普及,人们更加习惯于通过手机来看新闻。由于生活节奏的加快,很多人只能利用碎片时间来获取信息,因此,对于移动资讯客户端的需求也越来越高。黑马头条项目正是在这样背景下开发出来。黑马头条项目采用当下火热的微服务+大数据技术架构实现。本项目主要着手于获取最新最热新闻资讯,通过大数据分析用户喜好精确推送咨询新闻

类似于今日头条,是一个新闻资讯类的项目,像现在手机上一定会有腾讯新闻,新浪、网易新闻 类似的app; 为什么开发这样的额项目呢? 人们在手机上查看信息

2.4)项目术语

产品经理提供的功能架构图:

移动客户端, 供用户查看文章的,查看文章内容,关注,点赞,收藏,评论切换频道,搜索文章

自媒体端:发布文章 文章的数据展示,最重要的功能发布文章,可以查看以往内容的列表,文章图片素材,粉丝数报表的统计

管理平台:后台对违规内容进行管理(官方) 实名认证审核工作,文章上传和下架的工作,频道管理,敏感词设置

2.5)业务说明

项目演示地址:

平台管理与自媒体为PC端,用电脑浏览器打开即可。

其中app端为移动端,打开方式有两种:

  • 谷歌浏览器打开,调成移动端模式

  • 手机浏览器打开或扫描右侧二维码

3)技术栈

  • Spring-Cloud-Gateway : 微服务之前架设的网关服务,实现服务注册中的API请求路由,以及控制流速控制和熔断处理

  • 运用Spring Boot快速开发框架,构建项目工程;并结合Spring Cloud全家桶技术,实现后端个人中心、自媒体、管理中心等微服务。

  • 运用Spring Cloud Alibaba Nacos作为项目中的注册中心和配置中心

  • 运用mybatis-plus作为持久层提升开发效率

  • 运用Kafka完成内部系统消息通知;与客户端系统消息通知;以及实时数据计算

  • 运用Redis缓存技术,实现热数据的计算,提升系统性能指标

  • 使用Mysql存储用户数据,以保证上层数据查询的高性能

  • 使用Mongo存储用户热数据,以保证用户热数据高扩展和高性能指标

  • 使用FastDFS作为静态资源存储器,在其上实现热静态资源缓存、淘汰等功能

  • 运用Hbase技术,存储系统中的冷数据,保证系统数据的可靠性

  • 运用ES搜索技术,对冷数据、文章数据建立索引,以保证冷数据、文章查询性能

  • 运用AI技术,来完成系统自动化功能,以提升效率及节省成本。比如实名认证自动化

  • PMD&P3C : 静态代码扫描工具,在项目中扫描项目代码,检查异常点、优化点、代码规范等,为开发团队提供规范统一,提升项目代码质量

4)==nacos环境搭建==

4.1)虚拟机镜像准备

1)打开当天资料文件中的镜像,拷贝到一个地方,然后解压

2)解压后,双击ContOS7-hmtt.vmx文件,前提是电脑上已经安装了VMware

3) 修改虚拟网络地址(NAT)

①,选中VMware中的编辑

②,选择虚拟网络编辑器

③,找到NAT网卡,把网段改为200(当前挂载的虚拟机已固定ip地址)

4)修改虚拟机的网络模式为NAT

5)启动虚拟机,用户名:root 密码:itcast,当前虚拟机的ip已手动固定(静态IP), 地址为:192.168.200.130

6)使用FinalShell客户端链接

4.2)nacos安装

①:docker拉取镜像

docker pull nacos/nacos-server:1.2.0

②:创建容器

docker run --env MODE=standalone --name nacos --restart=always  -d -p 8848:8848 nacos/nacos-server:1.2.0
  • MODE=standalone 单机版

  • --restart=always 开机启动

  • -p 8848:8848 映射端口

  • -d 创建一个守护式容器在后台运行

③:访问地址:http://192.168.200.130:8848/nacos

5)==初始工程搭建==

5.1)环境准备

①:项目依赖环境(需提前安装好)

  • JDK1.8

  • Intellij Idea

  • maven-3.6.1

  • Git

②:在当天资料中解压heima-leadnews.zip文件,拷贝到一个没有中文和空格的目录,使用idea打开即可

③:IDEA开发工具配置

设置本地仓库,建议使用资料中提供好的仓库

④:设置项目编码格式codestyle、fileEncodings

5.2)主体结构

==6)登录==

6.1)需求分析

  • 用户点击开始使用

    登录后的用户权限较大,可以查看,也可以操作(点赞,关注,评论)

  • 用户点击不登录,先看看

游客只有查看的权限

6.2)表结构分析

关于app端用户相关的内容较多,可以单独设置一个库leadnews_user

表名称 说明
ap_user APP用户信息表
ap_user_fan APP用户粉丝信息表
ap_user_follow APP用户关注信息表
ap_user_realname APP实名认证信息表

从当前资料中找到对应数据库并导入到mysql中

登录需要用到的是ap_user表,表结构如下:

项目中的持久层使用的mybatis-plus,一般都使用mybais-plus逆向生成对应的实体类

app_user表对应的实体类如下:

package com.heima.model.user.pojos;
​
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
​
import java.io.Serializable;
import java.util.Date;
​
/**
 * <p>
 * APP用户信息表
 * </p>
 *
 * @author itheima
 */
@Data
@TableName("ap_user")
public class ApUser implements Serializable {
​
    private static final long serialVersionUID = 1L;
​
    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
​
    /**
     * 密码、通信等加密盐
     */
    @TableField("salt")
    private String salt;
​
    /**
     * 用户名
     */
    @TableField("name")
    private String name;
​
    /**
     * 密码,md5加密
     */
    @TableField("password")
    private String password;
​
    /**
     * 手机号
     */
    @TableField("phone")
    private String phone;
​
    /**
     * 头像
     */
    @TableField("image")
    private String image;
​
    /**
     * 0 男
     
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值