blog

module
v0.0.0-...-5b4efa0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 30, 2020 License: BSD-3-Clause

README

BLOG

Build Status LICENSE

此项目未测试
我本想写出一个golang微服务博客后端, 但是写完后发现我的服务器带不动, 学生党也没有太多的钱花在服务器上, 我对这个项目的兴趣减少了一半.
初次写完后回头看, 发现以前的代码简直不堪入目, 很罗嗦, 不够精炼, 所以回头将前期写的模块进行了完全的重构. 重构过程中我学到的东西越来越少了, 所以就此结题, 开始新的篇章.
这个项目从十月初开始写, 写了两个月, 算是把我学到的后端开发知识都大体用了一次, 比以前有了更深的认识.
很感谢大佬写的微服务教程, 我获益匪浅.

plumemo项目后端的重构,使其成为了微服务后端,配合对应前端使用theme-react-sakura/plumemo-admin(部分api需要修改,见下方)

运用的技术

  • docker
  • docker swarm(管理集群,创建网络,健康检查,服务发现)
  • httpmock
  • convey
  • travis
  • jsoniter
  • gin
  • mysql
  • redis(储存token,token过时视为登录失效, 未完成)
  • nginx(反向代理,微服务网关)
  • rabbitmq(消息总线)

部署

  • 安装jdk8和go1.13.x
  • git clone --depth=1 https://github.com/closetool/blog
  • 给根目录和scripts目录下的脚本和support/config-server/gradlew添加执行权限(chmod a+x .sh scripts/.sh support/config-server/gradlew)
  • 先修改根目录下的config.yml,config.yml描述了configserver的位置和config branch/profile
  • 运行buildall.sh脚本
  • docker stack deploy --compose-file docker-compose.yml '集群名'

配置中心

  • 配置中心中必有service_port,service_name
  • 配置中心使用log_file_path(default:logs)和log_file_name(default:appName_localTime.log)指定log文件的位置和名字
  • 使用log_level修改日志输出级别(default:4 info)

Music Service

  • 需要music_playlist_id(网易云歌单id)
  • 服务端口配置为2599

User Service

  • /social/v1/list > /list/v1/social
  • /social/v1/info > /info/v1/social
  • /social/v1/socials > /socials/v1/social
  • /byteblogs/email/v1/send > /auth/email/v1/send

Category Service

  • /comments/v1/get > /get/v1/comments
  • /category-tags/v1/list > /list/v1/category-tags
  • /category/v1/list > /list/v1/category
  • /tags/v1/list > /list/v1/tags
category
  • /category-tags/v1/list > /list/v1/category-tags
  • /category/v1/list > /list/v1/category
tags
  • /tags/v1/list > /list/v1/tags

Posts Service

posts
  • /posts/v1/list > /list/v1/posts
comments
  • /comments/v1/get > /get/v1/comments

Menu Service

  • /menu/v1/list > /list/v1/menu
  • /link/v1/list > /list/v1/link

FIXME

  • docker swarm中不同node之间的同一overlay网络中的容器无法互相访问,nginx代理只能使用公网
  • gin框架中不支持注册spring中的requestmapping,只能为路由多次注册不同方法
  • gin框架中/info和/:id路由冲突

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL