Сегодняшняя рекомендация: Начало работы с gRPC с нуля: реализация Hello World с 0.
Ссылка на статью:https://cloud.tencent.com/developer/article/2468568
В этой статье реализуется процесс вызова gRPC от 0 до 1 и демонстрируется его с помощью соответствующего фактического кода. Несмотря на простоту, это очень практичное руководство.
Spring Initializr
Быстро сгенерируйте Spring Boot проект, вы также можете использовать ide Инструменты для строительных лесов помогут нам быстро простой Hello World Web Приложение, эта часть относительно проста, и вы можете выбрать подходящий способ ее создания.HelloWorldController.java
package org.demo.springwebwithk8s.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloWorldController {
@RestController
public class HelloController {
@GetMapping("/")
public String sayHello() {
return "Hello world!";
}
}
}
application.properties
spring.application.name=spring-web-with-k8s
server.port=8080
# использоватьосновазеркало
FROM openjdk:17-jdk-alpine
# Определить переменные среды Обратите внимание, является ли адрес местным jar Адреса пакетов совпадают?
ARG JAR_FILE=target/spring-web-with-k8s-0.0.1-SNAPSHOT.jar
# Воляприложениеиз jar документкопироватьприезжатьконтейнерсередина
COPY ${JAR_FILE} app.jar
# открытый порт
EXPOSE 8080
# Определить команду запуска
ENTRYPOINT ["java", "-jar", "/app.jar"]
docker build -t hello-world-app:1.0 .
docker build: команда используется на основе Dockerfile Строить Docker Зеркало.
-t: зеркало, выраженное как Строить, указывает тег.
hello-world-app:1.0:
hello-world-app: имя зеркала, идентифицирующее ваше приложение Зеркало.
1.0: Номер версии зеркала может помочь отличить разные версии одного и того же приложения.
.: обозначение Dockerfile Путь существования. существуют Текущий каталог (.)середина Смотрю Dockerfile。
docker run -d -p 8080:8080 --name hello-world-app hello-world-app:1.0
docker run: Команда используется для запуска контейнера.
-d: Запуск контейнеров в фоновом режиме (Отключенный модель).
--name hello-world-app: дляконтейнеробозначениеимя hello-world-app облегчает последующее управление (например, просмотр статуса, остановку контейнеров и т. д.).
-p 8080:8080: Сопоставление портов хоста 8080 Картирование порта прибытия контейнера 8080 порт.
hello-world-app:1.0: обозначениебегзеркалоимяиномер версии,Указывает на создание и запуск контейнера на основе этого зеркала.
hub.docker.com
Например# Docker Hub Попросить толкать у зеркала username/repository:tag Именование формата. Отметьте местное зеркало Docker Hub обязательные теги
docker tag hello-world-app:1.0 your-dockerhub-username/hello-world-app:1.0
docker push your-dockerhub-username/hello-world-app:1.0
kubeadm init --apiserver-advertise-address $(hostname -i) --pod-network-cidr 10.5.0.0/16
kubectl apply -f https://raw.githubusercontent.com/cloudnativelabs/kube-router/master/daemonset/kubeadm-kuberouter.yaml
kubeadm join 192.168.0.6:6443 --token y18e92.u3f9xgtio2vifvkb \
--discovery-token-ca-cert-hash sha256:85d66d0f4ae5122084bf0149029b9a9e374007cf6ae91913cab9cdf6b6f66789
hello-world-service.yaml
apiVersion: v1
kind: Service
metadata:
name: hello-world-service
spec:
selector:
app: hello-world
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: LoadBalancer
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-world
spec:
replicas: 2
selector:
matchLabels:
app: hello-world
template:
metadata:
labels:
app: hello-world
spec:
containers:
- name: hello-world
image: your-dockerhub-username/hello-world-app:1.0
ports:
- containerPort: 8080
kubectl apply -f hello-world-deployment.yaml
приложениеразвивать:насиспользовать Spring Boot Строить - это просто "Hello World" приложение, заложившее основу развертывания.
контейнеризация приложения: автор Написать Docker-файл,Воля Spring Boot Приложение упаковано как Docker Зеркало обеспечивает поддержку межплатформенного развертывания и согласованности окружающей среды.
Kubernetes развертывать:использовать labs.play-with-k8s.com,быстрый Строить Kubernetes кластер, успешно развертывание запустило контейнерный Web приложение。
👋 привет, я Lorin Лорейн, один Java Бэкэнд-технологииразвивать ВОЗ!девиз:Technology has the power to make the world a better place.
🚀 Моя страсть к технологиям — это моя мотивация продолжать учиться и делиться ими. Мой блог — это место об экосистеме Java, серверной разработке и последних технологических тенденциях.
🧠 Будучи энтузиастом серверных технологий Java, я не только с энтузиазмом изучаю новые возможности языка и глубину технологий, но также с удовольствием делюсь своими идеями и передовым опытом. Я верю, что обмен знаниями и сотрудничество с сообществом могут помочь нам расти вместе.
💡 В моем блоге вы найдете подробные статьи об основных концепциях Java, базовой технологии JVM, часто используемых платформах, таких как Spring и Mybatis, управлении базами данных, таких как MySQL, промежуточном программном обеспечении для обработки сообщений, таком как RabbitMQ, Rocketmq и т. д., оптимизации производительности, и т. д. Я также поделюсь некоторыми советами по программированию и методами решения проблем, которые помогут вам лучше освоить программирование на Java.
🌐 Я поощряю взаимодействие и создание сообщества, поэтому, пожалуйста, оставляйте свои вопросы, предложения или запросы по темам и дайте мне знать, что вас интересует. Кроме того, я буду делиться последними новостями Интернета и технологий, чтобы вы всегда были в курсе последних событий в мире технологий. Я с нетерпением жду возможности вместе с вами двигаться вперед по пути технологий и исследовать безграничные возможности мира технологий.
📖 Следите за обновлениями моего блога и давайте вместе стремиться к техническому совершенству.