Coder Social home page Coder Social logo

cybernhl / jarticle Goto Github PK

View Code? Open in Web Editor NEW

This project forked from vir56k/jarticle

0.0 0.0 0.0 389 KB

一个java微服务实现的markdown管理工具

License: Apache License 2.0

Shell 2.57% JavaScript 29.73% Java 56.91% CSS 6.32% Makefile 2.24% HTML 0.98% Dockerfile 0.58% TSQL 0.67%

jarticle's Introduction

jarticle

一个 java 微服务实现的 markdown 文章管理工具。

web应用功能概要

  1. 使用 markdown 格式编辑文章,保存文章
  2. 浏览文章,文章在本地以文件形式存在,便于管理
  3. 基本功能有登录,注销
  4. 博客园支持 MetaWeblog,据此实现和博客园文章同步,新建/编辑/删除文章( 进度10% )

技术栈

后端(微服务架构,使用Docker实现容器化)

  • 使用 SpringBoot 作为微服务框架
  • 使用 eureka 做服务发现,使用 zuul 微服务网关,CORS 处理跨域请求
  • 使用 Docker 实现容器化,docker-compose 容器编排管理
  • 使用 makefile 实现构建管理,生成docker镜像和端口映射。
  • 使用 Maven 方式管理依赖
  • 基于 RESTful 风格的 HTTP API 。
  • 使用 JSON 协议实现序列化
  • 密码采用SecureRandoms生成随机盐+SHA128方式生成。
  • 使用 JWT 实现tokent 生成和校验,使用 jwt-go 框架
  • 使用 flexmark 将 markdown 格式文本转成HTML
  • 使用 XML-RPC 的 MetaWeblog 协议接口,实现和博客园文章同步
  • 事件驱动的架构,使用 RabbitMQ 作为消息队列,当注册用户成功时发送消息,当注册用户成功时发送消息,邮件服务收到消息后发送通知邮件
  • 使用 MySQL 数据库,使用 lombok 插件

前端

  • React 开发实现前端分离
  • React Hook 简化状态管理
  • React Router 路由 V4.0
  • for-editor 作为 markdown 编辑器
  • 多环境构建(开发,测试,线上)
  • 支持基于 token 的登录,退出登录功能

整体结构

采用“前后端分离”的结构:

  • server 文件夹 下是服务端代码,用go语言实现。
  • web 文件夹 下是前端代码,使用 react 开发。

微服务架构说明

使用Springboot实现微服务架构,将功能分解到各个离散的服务中以实现解耦,主要有:

  • article-service 文章服务,提供文章的增删改查等数据访问。
  • user-service 用户服务,提供用户管理,和 token 的生成和校验。
  • zuul网关 提供 HTTP RESTful 风格API ,供web调用。
  • email-service 消息队列,当注册用户成功时发送消息,邮件服务收到消息后发送通知邮件
  • sync-service 同步服务,将文章同步到第三方博客平台。(开发中)

容器化

使用 docker 实现容器化,简化和方便于微服务架构下的环境配置。 docker-compose 分组管理多个镜像和依赖。 编写 makefile 脚本,实现自动生成容器,和快速启动多个服务。

事件驱动的架构

事件驱动的架构,使用 RabbitMQ 作为消息队列,当注册用户成功时发送消息,邮件服务收到消息后发送通知邮件 使得当用户注册完成时,无需等待 通知邮件发送完成即进行下一步任务。邮件通知微服务会异步完成发送邮件的任务。

数据库

使用 MySQL 数据库,使用 lombok 插件。

关于

jarticle's People

Contributors

vir56k avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.