Rumah  >  Artikel  >  Java  >  Timbunan teknologi Java untuk membina sistem teragih yang sangat boleh dipercayai dan berskala

Timbunan teknologi Java untuk membina sistem teragih yang sangat boleh dipercayai dan berskala

王林
王林asal
2023-09-06 11:36:281457semak imbas

Timbunan teknologi Java untuk membina sistem teragih yang sangat boleh dipercayai dan berskala

Timbunan teknologi Java untuk membina sistem teragih yang sangat boleh dipercayai dan berskala

Dengan perkembangan pesat Internet, sistem teragih menjadi semakin banyak penting hari ini. Memainkan peranan penting dalam pembangunan perisian. Matlamat teras sistem teragih adalah untuk menyediakan kebolehpercayaan dan skalabiliti yang tinggi untuk menghadapi cabaran data besar-besaran dan akses serentak yang tinggi. Dalam artikel ini, kami akan memperkenalkan beberapa teknologi utama dan contoh kod yang digunakan dalam tindanan teknologi Java untuk membina sistem teragih yang sangat boleh dipercayai dan berskala.

1. Reka bentuk seni bina sistem teragih

Sebelum membina sistem teragih, kita perlu mereka bentuk seni bina sistem dengan teliti. Seni bina yang baik boleh mengurangkan kerumitan sistem dan meningkatkan kebolehselenggaraan dan kebolehskalaan sistem. Corak seni bina sistem teragih biasa termasuk seni bina berlapis, seni bina perkhidmatan mikro dan seni bina dipacu peristiwa.

Dalam sistem teragih, komponen yang biasa digunakan termasuk pengimbang beban, pangkalan data teragih, baris gilir mesej, cache teragih, dsb. Pengimbang beban boleh mengagihkan permintaan secara sama rata kepada berbilang pelayan, pangkalan data yang diedarkan boleh menyimpan dan mengakses data yang diedarkan pada berbilang nod, baris gilir mesej boleh mencapai komunikasi tak segerak antara perkhidmatan yang berbeza, dan cache yang diedarkan boleh meningkatkan prestasi sistem dan skala.

2. Gunakan Spring Cloud untuk membina seni bina perkhidmatan mikro

Seni bina perkhidmatan mikro ialah salah satu seni bina paling popular dalam sistem teragih hari ini, yang membahagikan sistem kepada beberapa tanggungjawab tunggal Perkhidmatan, setiap perkhidmatan berjalan dalam proses bebas dan berkomunikasi melalui protokol komunikasi yang ringan. Spring Cloud ialah rangka kerja sumber terbuka untuk membina dan mengurus seni bina perkhidmatan mikro. Berikut ialah contoh kod untuk membina perkhidmatan mikro menggunakan Spring Cloud:

// 服务提供者
@RestController
public class UserController {
    @GetMapping("/users/{id}")
    public User getUser(@PathVariable("id") Integer id) {
        // 从数据库中查询用户数据
        return userService.getUser(id);
    }
}

// 服务消费者
@RestController
public class OrderController {
    @Autowired
    private RestTemplate restTemplate;

    @GetMapping("/orders/{userId}")
    public OrderList getOrders(@PathVariable("userId") Integer userId) {
        // 调用用户服务获取用户信息
        User user = restTemplate.getForObject("http://user-service/users/" + userId, User.class);
        // 从数据库中查询订单数据
        return orderService.getOrders(user.getId());
    }
}

// 服务注册与发现
@SpringBootApplication
@EnableDiscoveryClient
public class UserServiceApplication {
    public static void main(String[] args) {
        SpringApplication.run(UserServiceApplication.class, args);
    }
}

// 配置文件
spring.application.name=user-service
server.port=8081
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/

Dalam contoh kod di atas, kami mencipta perkhidmatan pengguna dan perkhidmatan pesanan, yang melaksanakan perkhidmatan antara perkhidmatan dengan memanggil antara muka RESTful komunikasi. Pendaftaran perkhidmatan dan fungsi penemuan disediakan oleh komponen Eureka dalam Spring Cloud.

3 Gunakan Apache Kafka untuk melaksanakan baris gilir mesej

Baris gilir mesej ialah mod komunikasi yang biasa digunakan dalam membina sistem teragih. Apache Kafka ialah sistem pemesejan terbitan-langganan teragih tinggi yang menampilkan ketekunan, kebolehpercayaan yang tinggi dan berskala. Berikut ialah contoh kod yang menggunakan Apache Kafka untuk melaksanakan baris gilir mesej:

// 消息生产者
@Service
public class MessageProducer {
    @Autowired
    private KafkaTemplate<String, String> kafkaTemplate;

    public void sendMessage(String topic, String message) {
        kafkaTemplate.send(topic, message);
    }
}

// 消息消费者
@Service
public class MessageConsumer {
    @KafkaListener(topics = "myTopic")
    public void receiveMessage(String message) {
        // 处理收到的消息
        System.out.println("Received message: " + message);
    }
}

// 配置文件
spring.kafka.bootstrap-servers=localhost:9092
spring.kafka.consumer.group-id=myGroup

Dalam contoh kod di atas, kami mencipta pengeluar mesej dan pengguna mesej. Pengeluar mesej menggunakan KafkaTemplate untuk menghantar mesej ke topik yang ditentukan, dan pengguna mesej menentukan topik yang dilanggan dengan menggunakan anotasi @KafkaListener dan memproses mesej dengan sewajarnya apabila ia menerimanya.

4. Gunakan Redis untuk membina cache teragih

Cache teragih ialah salah satu komponen penting untuk meningkatkan prestasi dan kebolehskalaan sistem. Redis ialah cache teragih sumber terbuka berprestasi tinggi dan sistem storan nilai kunci yang menyokong berbilang struktur data dan operasi yang kompleks. Berikut ialah contoh kod untuk menggunakan Redis untuk membina cache yang diedarkan:

// 配置Redis连接池
@Bean
public JedisPool jedisPool() {
    JedisPoolConfig poolConfig = new JedisPoolConfig();
    poolConfig.setMaxTotal(100);
    poolConfig.setMaxIdle(20);
    poolConfig.setMinIdle(5);
    JedisPool jedisPool = new JedisPool(poolConfig, "localhost", 6379);
    return jedisPool;
}

// 操作缓存
@Service
public class CacheService {
    @Autowired
    private JedisPool jedisPool;

    public void set(String key, String value) {
        try (Jedis jedis = jedisPool.getResource()) {
            jedis.set(key, value);
        }
    }

    public String get(String key) {
        try (Jedis jedis = jedisPool.getResource()) {
            return jedis.get(key);
        }
    }
}

Dalam contoh kod di atas, kami mencipta kumpulan sambungan Redis dan menggunakan klien Jedis untuk operasi caching. Perkhidmatan cache boleh menyediakan operasi asas seperti set(Kunci rentetan, nilai rentetan) dan dapatkan(kunci rentetan).

Ringkasan:

Artikel ini memperkenalkan beberapa teknologi utama dan contoh kod untuk membina sistem teragih yang boleh dipercayai dan berskala. Reka bentuk seni bina sistem teragih, menggunakan Spring Cloud untuk membina seni bina perkhidmatan mikro, menggunakan Apache Kafka untuk melaksanakan baris gilir mesej, dan menggunakan Redis untuk membina cache teragih ialah semua teknologi yang biasa digunakan untuk membina sistem teragih yang sangat boleh dipercayai dan berskala. Saya harap artikel ini akan membantu pembaca semasa membina dan mereka bentuk sistem teragih.

Atas ialah kandungan terperinci Timbunan teknologi Java untuk membina sistem teragih yang sangat boleh dipercayai dan berskala. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn